SQL語法練習
統整目前資訊
決定好要用的視覺化圖表
今天在My SQL中進行語法練習,並會大概整理一下目前分析的狀況,看還有沒有什麼值得深入探究的地方。
篩掉含有'ride_length'欄位小於'00:01:00'的資料
計算總共的不重複筆數
以長租/中租/短租來計算數量
由於存入資料庫的是僅篩掉'##'的資料,而在日期時間部分沒有特別先處理(想說多練習一點),故先來找轉換型態的方式,發現在HeidiSQL中可以很方便的轉換資料型態(*但僅適用於原本格式就符合的,像是日期順序不對的會直接出錯)
直接在資料表的地方更改即可!記得按存檔。
查了一下如果想要更改日期順序不對的字串欄位,在MySQL中可以使用 CONVERT()、CAST()或STR_TO_DATE() 等,但好像都只有看到單一欄位的更改,明天比較有空時再來補充這裡~
2022/9/16補充
以下語法可順利將字串轉為datetime資料型態,但僅限單欄。
SELECT STR_TO_DATE('31-03-2020 09:07','%d-%m-%Y %h:%i');
後來放棄直接在MySQL修改的念頭,轉向在Python前處理(將字串拆成僅有日期&僅有時間兩個新欄位)再轉入資料庫,兩個搭配起來時間上真的快很多~
以下SQL語法參考
SELECT COUNT(started_at)
FROM clean_data_ver
WHERE (ride_length >= '00:01:00') AND (started_time BETWEEN '00:00:00' AND '05:59:00');
SELECT COUNT(started_at)
FROM clean_data_ver
WHERE (ride_length >= '00:01:00') AND (started_time BETWEEN '06:00:00' AND '11:59:00');
SELECT COUNT(started_at)
FROM clean_data_ver
WHERE (ride_length >= '00:01:00') AND (started_time BETWEEN '12:00:00' AND '17:59:00');
SELECT COUNT(started_at)
FROM clean_data_ver
WHERE (ride_length >= '00:01:00') AND (started_time BETWEEN '18:00:00' AND '23:59:00');
篩掉含有'ride_length'欄位小於'00:01:00'的資料
SELECT * FROM clean_data
WHERE ride_length >= '00:01:00';
計算總共的不重複筆數
SELECT COUNT(DISTINCT ride_id) FROM clean_data
WHERE ride_length >= '00:01:00';
以長租/中租/短租來計算數量
短租
SELECT COUNT(ride_id) FROM clean_data
WHERE ride_length Between'00:01:00' AND '01:00:00';
中租
SELECT COUNT(ride_id) FROM clean_data
WHERE ride_length >'01:00:00' AND ride_length <'12:00:00';
長租
SELECT COUNT(ride_id) FROM clean_data
WHERE ride_length >'12:00:00';
眼看截稿時間快要到了,今天練習就先到這邊XD
明天面完試可以有比較多時間在這邊!會再補上沒完成的部份的